<?php
	namespace API;
	
	/*
	* Description: ....
	* Author: NhanPro
	* Date: 26/02/2013
	*/
	
	class Api
	{	
		protected  $version;
		
		public function __construct()
		{
			$this->setVersion('Bingo Framework v.1.0.0');
		}
		
		public function setVersion($version)
		{
			$this->version=$version;
		}
		
		public function getVersion()
		{
			return $this->version;
		}
		
		public function openXml($file)
		{
			$doc = new DOMDocument();
			$doc->load($file);
			return $doc;
		}
		/**
		* Hàm để loại bỏ các ký tự có dấu của tiếng việt
		\*/
		function removeCircumFlex($value)
		{
			 /*a à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ b c d đ e è ẻ ẽ é ẹ ê ề ể ễ ế ệ
          f g h i ì ỉ ĩ í ị j k l m n o ò ỏ õ ó ọ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ
          p q r s t u ù ủ ũ ú ụ ư ừ ử ữ ứ ự v w x y ỳ ỷ ỹ ý ỵ z*/
          
          $charaterA = '#(à|ả|ã|á|ạ|ă|ằ|ẳ|ẵ|ắ|ặ|â|ầ|ẩ|ẫ|ấ|ậ)#imsU';
          $replaceCharaterA = 'a';
          $value = preg_replace($charaterA, $replaceCharaterA, $value);
          
          $charaterD = '#(đ)#imsU';
          $replaceCharaterD = 'd';
          $value = preg_replace($charaterD,$replaceCharaterD,$value);
          
          $charaterE = '#(è|ẻ|ẽ|é|ẹ|ê|ề|ể|ễ|ế|ệ)#imsU';
          $replaceCharaterE = 'e';
          $value = preg_replace($charaterE,$replaceCharaterE,$value);
       
          $charaterI = '#(ì|ỉ|ĩ|í|ị)#imsU';
          $replaceCharaterI = 'i';
          $value = preg_replace($charaterI,$replaceCharaterI,$value);
          
          $charaterO = '#(ò|ỏ|õ|ó|ọ|ô|ồ|ổ|ỗ|ố|ộ|ơ|ờ|ở|ỡ|ớ|ợ)#imsU';
          $replaceCharaterO = 'o';
          $value = preg_replace($charaterO,$replaceCharaterO,$value);
                
          $charaterU = '#(ù|ủ|ũ|ú|ụ|ư|ừ|ử|ữ|ứ|ự)#imsU';
          $replaceCharaterU = 'u';
          $value = preg_replace($charaterU,$replaceCharaterU,$value);
          
          $charaterY = '#(ỳ|ỷ|ỹ|ý|ỵ)#imsU';
          $replaceCharaterY = 'y';
          $value = preg_replace($charaterY,$replaceCharaterY,$value);
          
          return  $value;
		}
		/**
		* Hàm để loại bỏ các ký tự không phải alphabet và ký tự số (Tùy chọn loại bỏ khoảng trắng or không loại bỏ)
		\*/
		function filterAlnum($value,$allowWhiteSpace=true)
		{
			$whiteSpace='';
			if($allowWhiteSpace)
			{
				$whiteSpace='\s'; // Khoảng trắng là \s
			}
			$pattern_01 = '/[^a-zA-Z0-9' . $whiteSpace . ']/';
			$value=preg_replace($pattern_01, '', (string) $value);
			$pattern_02 = '/[^a-zA-Z0-9'  . $whiteSpace . ']/u';
			$value=preg_replace($pattern_02, '', (string) $value);
			$pattern_03 = '/[^\p{L}\p{N}' . $whiteSpace . ']/u';
			$value=preg_replace($pattern_03, '', (string) $value);
			return $value;
		}
		/**
		* Hàm để thay thế dấu $pattern thành dấu $replacement
		\*/
		function filterWordSeparatorToSeparator($value, $pattern, $replacement)
		{
			$pattern='#' . preg_quote($pattern, '#') . '#';
			return preg_replace($pattern, $replacement, $value);
		}
		/**
		* Hàm để thay thế dấu khoảng trắng thành dấu '-'
		\*/
		function filterWordWhiteSpaceToDash($value)
		{
			$pattern='/\s/';
			$value=preg_replace($pattern, '-', (string) $value);
			return $value;
		}
		/**
		* Hàm để lấy link url
		\*/
		function filterWordToLink($value)
		{
			$value=$this->removeCircumFlex($value); // loại bỏ dấu tiếng việt
			$value=$this->filterAlnum($value,true); // loại bỏ ký tự đặc biệt
			$value=$this->filterWordWhiteSpaceToDash($value); // thay thế khoảng trắng thành dấu '-'
			$value=strtolower($value);
			return $value;
		}
	}
?>